package com.zzgele.qmzb.api.utils;

import java.math.BigDecimal;

/**
 * Created by Martin on 2017-08-04.
 */
public class CalculateUtil {
    /**
     * 比较BigDecimal1是否大于等于BigDecimal2
     * @param bigDecimal1
     * @param bigDecimal2
     * @return true=是/false=否
     */
    public static Boolean isGreaterEqual(BigDecimal bigDecimal1, BigDecimal bigDecimal2) {
        //返回的结果是int类型,-1表示小于,0是等于,1是大于
        if(bigDecimal1.compareTo(bigDecimal2)<0) {
            return false;
        }
        return true;
    }

    /**
     * 计算总价
     * @param price 单价
     * @param amount 数量
     * @return
     */
    public static BigDecimal getTotal(BigDecimal price, Integer amount) {
        //加法 bigDecimal1.add(bigDecimal2);
        //减法 bigDecimal1.subtract(bigDecimal2);
        //乘法 bigDecimal1.multiply(bigDecimal2);
        //除法 bigDecimal1.divide(bigDecimal2);
        BigDecimal total = price.multiply(new BigDecimal(amount));
        return total;
    }

    /**
     * 检查是否足够支付
     * @param balance 余额
     * @param price 单价
     * @param amount 数量
     * @return
     */
    public static Boolean isEnough(BigDecimal balance, BigDecimal price, Integer amount) {
        BigDecimal total = getTotal(price, amount);
        return isGreaterEqual(balance, total);
    }

    /**
     * 计算新余额-
     * @param balance 余额
     * @param total 总费用
     * @return
     */
    public static BigDecimal getSubtractBalance(BigDecimal balance, BigDecimal total){
        return balance.subtract(total);
    }

    /**
     * 计算新余额+
     * @param balance 余额
     * @param total 总费用
     * @return
     */
    public static BigDecimal getAddBalance(BigDecimal balance, BigDecimal total){
        return balance.add(total);
    }
}
